For a long time, the technique of silicon-based integrated circuits, which has benefited from increasingly widespread miniaturization, was dominated by so-called “standard” integrated circuits based on a central processing unit (CPU) or a microprocessor. Over the last few years, the new trend has been to use microprocessor core-based application-specific integrated circuits (ASIC) using the complex instructions set computer (CISC) or the reduced instructions set computer (RISC). Three problems occur when developing integrated circuits, whether the latter are standard or specific: emulation, which consists in replacing the integrated circuit or the (hip in the final application by an emulation device performing the same functions as the integrated circuit, prototyping which consists in obtaining a prototype of the future integrated circuit, and development stage consisting in testing both the hardware and the application software and possibly performing debugging operations if problems are encountered.
The conventional approach for the emulation of integrated circuits has suffered an underlying assumption that is considered still today as an unchanging truth. The assumption is that an integrated circuit or a monolithic chip can be emulated only by another integrated circuit, that is to say, another monolithic chip that contains at least all of the functions contained in the integrated circuit that is to be emulated. The chips used for the emulation process generally contain a set of functions that were made accessible to the outside by extending the chip's inputs/outputs. These chips thus enable the emulation of all integrated circuit having functions that constitute a sub-assembly of the set of functions of the chip used for the emulation. Such chips which form the basis of the conventional emulation were indifferently referred to as the SE chip, Bound out chip, DEV chip, Emulation chip, Super chip or Piggy-Back.
Unfortunately, this conventional approach has a major drawback. As the emulation chip has only a given set of functions, it can only be used to emulate a limited number of integrated circuits. As a result, the smallest modification of the integrated circuit, other than memory size needed for the requirements of the application, may require that a new emulation chip be developed. It is thus usual to wait more than a year for an emulation circuit to be developed in order to be able to proceed with the emulation of an integrated circuit resulting from a modification of an integrated circuit that already exists, as the implementation of a new integrated circuit can only take place after its emulation circuit has been validated. This need to develop a new emulation circuit practically every time has made the development of integrated circuits very difficult and expensive, whether they are new or whether they are derived from existing integrated circuits. Furthermore, this problem has become crucial owing to the continued increase of specific integrated circuits, because it has become necessary to develop new emulation circuits very rapidly in order to meet the growing needs of specific applications and the rapid development of applications.
In order to solve the abovementioned problem, it was proposed to add to the emulation circuit a FPGA type external programmable logic array in order to incorporate a few additional functions. This solution is not adequate when a new specific integrated circuit must be created containing several peripheral functions which must be emulated in real time as the access to these functions is made by the external bus and not by the internal bus and thus at a much lower speed. Moreover, such a solution is totally inoperative when analog functions must be added to the integrated circuit.
As far as the prototyping and development of an integrated circuit are concerned, the existing solutions consist in using a set of separated boards representing the integrated circuit to be manufactured, or in using an emulation circuit previously mentioned to which one or more FPGA type programmable arrays integrating the required functions are added. This leads to making only prototypes which are much too slow and which do not represent the integrated circuit in real time or which are very close to the emulation circuit, thereby limiting the performance and the possibilities offered by these solutions due to the restricted number of functions which are traditionally found in a standard emulation circuit. It is clear that the need to develop an increasing number of specific integrated circuits for a perpetual influx of new applications and their growing complexity has created a crucial need to have rapid and efficient development and prototyping devices.